package org.example.new_hbps_backend_reconstruction.entity.request;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 丁利军
 * @date 2025年10月10日 10:26
 * @description TODO: 描述
 */

// 自定义监听器用于设置行号
public class ImportPatientListener implements ReadListener<ImportPatientBaseListRequest> {

    private List<ImportPatientBaseListRequest> list = new ArrayList<>();

    @Override
    public void invoke(ImportPatientBaseListRequest data, AnalysisContext context) {
        // 设置行号（从0开始，所以+1得到实际行号）
        data.setLineNum((long) (context.readRowHolder().getRowIndex() + 1));
        list.add(data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // 所有数据解析完成后的操作
        System.out.println("Excel导入完成，共导入 " + list.size() + " 条数据");
    }

    public List<ImportPatientBaseListRequest> getList() {
        return list;
    }
}
